(1) Field of the Invention
The present invention relates in general to computer networks, and more specifically to a method and apparatus that provides a display of the current operational status of all the data sources connected to a computer network.
(2) Description of the Prior Art
A common data processing system design utilizes a distributed computing environment where data is managed and disseminated over two or more interconnected computers. Such an interconnection of computers with the ability to communicate information between the computers is known as a computer network, or simply a network. Such networks may include a large number of components, including various types of computers and peripheral devices, which may be configured in a variety of ways and may be characterized as “Local Area Networks” (LANs) or “Wide Area Networks” (WANs) by the geographic area over which the components are distributed. LANs and WANs often employ several common configurations or architectures. For example, in a generic client/server configuration a certain number of the interconnected computers may function as clients while others may function as servers that provide services to the clients. Such a client/server configuration is a common example of the several available configurations of distributed computing environments (LANs and WANs) and is well known by those skilled in the art.
One manner of implementing software applications to run on a LAN or WAN is to use a vendor-independent network software architecture and infrastructure that various heterogeneous software applications can use to work together over the network. Such an implementation can be achieved using the “Common Object Request Broker Architecture” (CORBA) Specification. CORBA is a vendor independent specification for an architecture and infrastructure that promotes interoperability. It integrates computers from different vendors ranging in size from mainframes to desktops. CORBA provides a software bus that enables system applications to exchange and communicate information where such applications typically are distributed across a LAN or WAN. A CORBA based system relies on data abstraction to permit software applications running on the system to function unconstrained by the underlying network details, such as the types of workstations, the types of operating systems, and/or the programming languages of other application implementations. One of CORBA's most important, as well as most frequent uses is in network server applications that must handle a large number of clients, at high hit rates with high reliability. Applications utilizing CORBA are typically implemented and configured as either providers of data (servers and suppliers) or users of data (clients and consumers).
A large-scale distributed software system utilizing CORBA based architecture could have hundreds of servers/suppliers. In a large-scale system it may not be immediately obvious to a system manager whether all of the servers/suppliers are functioning properly or if a single server/supplier out of hundreds has failed. A number of software tools presently exist for gathering a variety of data from servers and/or clients in a distributed software system.
For example, U.S. Pat. No. 5,226,120 to Brown et al. for “Apparatus and Method of Monitoring the Status of a Local Area Network” (issued Jul. 6, 1993) teaches a monitoring and status displaying apparatus which determines the topology of a LAN by identifying and isolating each hub in the LAN and identifying the types of modules and the physical locations of the modules in the hub so that an image of the actual hub can be displayed on the video screen of the control console. The actual hub image shows the location and types of modules installed in the hub. However, this apparatus is oriented towards the managing and ascertaining of the specific physical layout of the hardware that composes the LAN. It does not monitor the processes running on the separate data terminal devices to determine if they are providing data appropriately nor does it display this information as status.
U.S. Pat. No. 5,675,798 to Chang for “System and Method for Selectively and Contemporaneously Monitoring Processes in a Multiprocessing Server” (issued Oct. 7, 1997) teaches a system for displaying the status of specific client applications running on a single multiprocessing server. The invention, by isolating and focusing on a specific client process, provides information of a granularity to identify processes which are hung up on semaphores, messages, queues or the like. The system employs a monitoring computer program running on the multiprocessing server which links control blocks to every process and displays information regarding the processes on a video display. Although this invention can provide a display of the status of a particular client process running on the server, it does not provide a system wide display of all servers and suppliers at once. There is no opportunity to obtain a complete system wide picture of which servers are operating and which are not. Also, this invention does not employ existing CORBA resources to achieve its results, but rather needs to employ additional performance monitoring code.
U.S. Pat. No. 5,939,999 to Ohgaki for “Polling Method and Apparatus for a Digital Processing System” (issued Aug. 17, 1999) teaches a digital processing system, such as transmission apparatus used in a digital communication system which employs a supervisory control unit and a plurality of controlled units each performing various processes. The supervisory control unit must perform a polling operation to each controlled unit to collect status information and determine whether any one of the controlled units is not mounted or has failed. Although the Ohgaki apparatus permits a considerable reduction of polling time over the prior art between the supervisory control unit and the plurality of controlled units, there is no display of such information to any type of graphical user interface.
U.S. Pat. No. 6,070,190 to Reps et al. for “Client-Based Application Availability and Response Monitoring and Reporting for Distributed Computing Environments” (issued May 30, 2000) teaches a method, system and program product for monitoring, from a client computer system, the performance of an application program residing on a server computer system connected to a LAN or WAN. A probe program residing at the client computer generates requests for the services of the application program and records transaction records based upon service responses from the server. The transaction records contain information such as whether a service response was made, the length of time to receive a response and other desired performance metrics. This information is stored in a database for statistical analysis and is also displayed on a graphical user interface. The goal is to monitor desired performance metrics of software applications running on servers from an end-user's vantage point. Although this invention can provide a display of the status of a particular process running on a server, it does not provide a system wide look at the status of all servers. Furthermore, it employs additional performance monitoring code in the form of a probe program incorporated into each client computer.
The above-described patents, while offering valuable information, do not by themselves provide the system manager of a large-scale distributed software system with a method and apparatus for easily and continuously ascertaining the system wide state of all of the servers/suppliers in real time. With such a method and apparatus, a system user might avoid a situation where he/she is unaware that a server or supplier is experiencing a loss of functionality until an undesired event occurs. System testers and maintenance personnel would also benefit from such a method and apparatus by quickly ascertaining the baseline status of the system and then quickly detecting and localizing a system problem to a particular server/supplier. In addition, it would be advantageous to provide such a method and apparatus without requiring additional performance monitoring code to be incorporated into each server/supplier application and without requiring a Simple Network Management Protocol (SNMP) agent to be running on all applicable hosts and an available system manager to oversee the system wide monitoring.
There is currently no method and apparatus which can provide a “quick look” status of all of the data sources of a data processing system utilizing CORBA architecture on a LAN which avoids incorporating performance monitoring code into each server/supplier application, avoids having an SNMP agent running on every host, enables a system operator or manager to determine the availability of system data, allows testers to determine the configuration of the system for a particular test and provides maintenance personnel a debugging capability to assist in troubleshooting of problems. What is needed is a status display tool for a multi-unit computer based network hosting a large-scale distributed software system.